VRML -> X3D
Introducing
X3D
X3D XML Syntax Overview (1)
Overview of Virtual Reality
Before examining the XML encoding in detail, how about a quick overview of the basics of Virtual Reality.
VRML -> X3D
* Standards-Track Animated Interactive 3D * X3D XML and VRML Text Format * X3D and Scene Access Interface (SAI) overview * X3D W3C DOM Interface overview * X3D Profiles * X3D Components * X3D Levels/Versions * Next Steps * XML X3D Syntax Overview
This is a list of items that I feel most
important that you learn about
in this introductory course.
I will discuss the X3D Syntax in some detail, but first let's take a look
at the scope of the existing language we are attempting to transcode into
XML.
It is the components which provide layers of increasing capability. The profiles capture a cross section of the available components to select the functionality needed for a particular application area.
Open Standard
* Standards-Track Geometries, Lighting, Appearances, Viewpoints, Behaviors, Interactivity * Compatibility Points W3C MPEG4
Open Standards are still the best bet for
content durability and re-purposing.
n_polys
Some might explain that the XMLization of VRML is
simply a distraction interjected into the otherwise calm
and deliberative explorations and discussions of VRML
functionality and extensions thereof.
Amazing set of performance and transportability
requirements.
Significant proprietary and open source
implementations 'live' in the hands of users.
NIST and other example repositories.
Compatibility points across W3C and MPEG standards.
Widespread recognition of
the reality of virtual reality - and of the standards-track.
Text Format
* X3D XML and VRML Text Formats VRML97 encoding (VRML97 ISO Spec) XML encoding (new ISO Spec) * How we do It: VRML97->X3DXML->X3DVRML + VRML97 Browsers Run X3DVRML Base Profile !! + X3DVRML Browsers Run VRML97 !! + Full X3D Browsers Run All :) * Other Efforts: binary/streaming encoding (development) serializable (development)
First Priority is 100% Lossless transcoding.
VRML97->X3DXML->X3DVRML using open tools and back again
using acceptable VRML97 viewer(s) is standard of acceptance for transcoding.
nodes-and-fields -> elements-and-attributes ??
VRML97 Widely accepted and ISO Amendment 1 adds
NURBS, GeoSpatial, and H-Anim.
Many VRML97-derived Implementations.
Translation Proves (mostly) Trivial regardless of encoding choices.
Convenience - Validation - Acceptance
SAI and DOM
* X3D Scene Access Interface (SAI) access to Browser access to 'External' Script/Java/Native general node/field/event access strongly typed accessor/mutator (may be autogenerated) * X3D W3C DOM and Web3D SAI overview DOM convenience methods for accessing a generic XML doc SAI strongly typed methods specific to X3D scene graph * All Works Together!
Discussed elsewhere in detail, the SAI and DOM interfaces seem to complement each other.
XML X3D
Scenes Navigation Geometries Materials Lights Time Events Routes Prototypes
When you start looking at VRML you notice that you can View Scenes or Worlds made up of Objects that represent Geometries made up of Materials that are made visible by proper application of Lighting, and that the world is animated by Time and Events routed between nodes. You may see that some nodes are custom Prototypes made up of combinations of standard nodes.
XML X3D
Scenes Viewpoints Navigation Manipulation Geometries Lights Textures Materials Events Sensors Anchors Timers Interpolators Routes Scripts DEF/USE Inlines Prototypes External Prototypes Object and Texture Libraries External interfaces
Then you look deeper into the coding and find that in addition there are Sensors, Anchors to hyperlink to other parts of the scene and to other scenes and worlds outside the present scene. You find Timers, Interpolators and Scripts to produce interactive animations, and that parts of the scene may be loaded by Inlines from separate files. Further still, there are facilities to DEF and reUSE components. You will see that there are massive Object and Texture and External Prototype Libraries available, and even detailed programatic interfaces to whatever is outside the scene.
Environment and Interactivity
Environment Interactivity
The goal of all this is to produce an highly responsive interactive environment with a believable Structure and hierarchy - like real life. Well Virtual Real Life, anyway.
Visualization and Navigation
*Multiple ViewPoints *Walk or Fly *Examine *Internal/External Anchors
Basic elements in the Visualization is the ability for the Author to set defined viewpoints to observe the scene contents from practically any point in the scene. But you also need to be able to navigate around the scene and this is provided by giving you the ability to at least Walk or Fly, and to actually Examine objects much like you are holding them with your hands. Of course there are the Anchors that allow you to hyperlink between viiewpoints within the present scene or 'outside' to a completely different environment.
Minimum Interface
Pointing Device Pointing Device Position and Movement Touch Activate Pointing Device Select ... Transform ... Keyboard Control of Navigation and Activate
There are many types of interface devices you may use
to hook yourself up to the Scene, but anything you use
must provide some sort of Pointing Device to allow you to
touch and select objects and control your movement.
A standard Mouse can provide this ability.
You can touch or click to select and even transform
an object if the Author permits it.
In order to provide better access to these features,
the standard keyboard can also be used for these functions.
X3D XML Syntax Overview
Welcome to a discussion of the XMLization and DOMification of VRML.